#ifndef SDL_celloskdata_h
#define SDL_celloskdata_h

#include <SDL.h>

#ifndef CELL_NO_SOFT_INPUT
typedef struct
{
	SDL_Rect	ImageArea;
	enum HID_ID	HIDID;
	SDLMod		ModifierID;
	uint32_t	MouseButton;
	uint16_t	Character;
	uint16_t	ShiftCharacter;
	uint32_t	Flags;
}	CELL_OSK_Key;

typedef struct
{
	SDL_Rect	ImageArea;
	SDLMod		ModifierID;
	SDLKey		Symbol;
}	CELL_OSK_Modifier;

extern const CELL_OSK_Key		CELL_OSK_Map[107];

/* Maps SDLMod to SDLKey, and contains the area to highlight when the button is down */
extern const CELL_OSK_Modifier	CELL_OSK_ModifierMap[6];

extern const SDLMod				CELL_OSK_ModifierIndex[6];

#define OSK_KEY_MAP_SIZE (sizeof(CELL_OSK_Map) / sizeof(CELL_OSK_Map[0]))
#define OSK_MOD_MAP_SIZE (sizeof(CELL_OSK_ModifierMap) / sizeof(CELL_OSK_ModifierMap[0]))

#endif

#endif
